//index.js
//获取应用实例
import http from '../../utils/api' // 引入api接口管理文件

const app = getApp()

Page({
  data: {
    statusBarHeight: wx.getSystemInfoSync()['statusBarHeight'],
    motto: 'Hello World',
    userInfo: {},
    hasUserInfo: false,
    canIUse: wx.canIUse('button.open-type.getUserInfo'),
    currentTab: '0',
    page:1,
  },

  login_out:function(){
    wx.showModal({
      title: '确定退出?',
      content: '',
      cancelText:'是',
      confirmText:'否',
      success(res){
        if(res.cancel == true){
          wx.removeStorageSync('login_token')
          wx.navigateTo({
            url: '../login/index',
          })
        }
      }
  })
  },

  // 预览图片
  previewImage: function(e){
    var that = this
    var key = e.currentTarget.dataset.key; // 当前条目索引
    var index = e.currentTarget.dataset.index; // 当前图片索引
    var tab = that.data.currentTab; // 当前栏目
    var pictures
    if(tab == '0'){
      pictures = that.data.mine_list[key]['image'];
    }
    if(tab == '2'){
      pictures = that.data.like_list[key]['image'];
    }
    wx.previewImage({
      current: pictures[index],
      urls: pictures
    })
  },

  /**
   * 跳转详情页
   */
  new_xinx:function(e){
    wx.navigateTo({
      url: '../dynamic_details/index?news_id='+e.currentTarget.dataset.news_id,
    })
  },

  // 跳转详情
  detalis_ming:function(e){
    wx.navigateTo({
      url: '../dynamic_details/index?news_id='+e.currentTarget.dataset.news_id,
    })
  },

  
  // yuanc:function(){
  //   wx.navigateTo({
  //     url: '../dynamic_details/index',
  //   })
  // },

  my_guanz:function(){
    wx.navigateTo({
      url: '../thumbs_up/index',
    })
  },

  my_fens:function(){
    wx.navigateTo({
      url: '../follow/index',
    })
  },

  // 切换栏目
  swichNav: function (e) {
    var that = this;
    if (this.data.currentTab === e.target.dataset.current) {
    return false;
    } else {
      that.setData({
        currentTab: e.target.dataset.current,
        page:1
      })
    }
    switch(that.data.currentTab){
      case '0': // 我得发布
      // 获取个人文章
      http.news_mine_lists({
        data:{'page':that.data.page},
        success:res=>{
          let zanwu;
          if(res.code == 1){ // 成功的情况
            if (res.data.length < 1) {
              zanwu = 1; // 是否显示没有数据
            } else {
              zanwu = 0;
            };
            that.setData({
              mine_list:res.data,
              zanwu:zanwu
            })
          }else{
            app.tip(res.info);
          }
        },
        fail:err=>{
          console.log(err)
        }
      })
      break;
    case '1': // 我得回复
      http.news_answer({
        data:{'page':that.data.page},
        success:res=>{
          if(res.code == 1){ // 成功的情况
            let zanwu;
            if (res.data.length < 1) {
              zanwu = 1; // 是否显示没有数据
            } else {
              zanwu = 0;
            };
            that.setData({
              answer_list:res.data,
              zanwu:zanwu
            })
          }else{
            app.tip(res.info);
          }
        },
        fail:err=>{
          console.log(err)
        }
      })   
      break;
    case '2':  // 我的点赞
      http.news_mine_like({
        data:{'page':that.data.page},
        success:res=>{
          if(res.code == 1){ // 成功的情况
            let zanwu;
            if (res.data.length < 1) {
              zanwu = 1; // 是否显示没有数据
            } else {
              zanwu = 0;
            };
            that.setData({
              like_list:res.data,
              zanwu:zanwu
            })
          }else{
            app.tip(res.info);
          }
        },
        fail:err=>{
          console.log(err)
        }
      })   
    break;
    }
    },
    

  //事件处理函数
  bindViewTap: function() {
    wx.navigateTo({
      url: '../logs/logs'
    })
  },
  onLoad: function () {
    if (app.globalData.userInfo) {
      this.setData({
        userInfo: app.globalData.userInfo,
        hasUserInfo: true
      })
    } else if (this.data.canIUse){
      // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
      // 所以此处加入 callback 以防止这种情况
      app.userInfoReadyCallback = res => {
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    } else {
      // 在没有 open-type=getUserInfo 版本的兼容处理
      wx.getUserInfo({
        success: res => {
          app.globalData.userInfo = res.userInfo
          this.setData({
            userInfo: res.userInfo,
            hasUserInfo: true
          })
        }
      })
    }
    let that = this;
    
    // 获取个人信息
    http.user_getInfo({
      success:res=>{
        if(res.code == 1){ // 成功的情况
          that.setData({
             info:res.data
          })
        }else{
          app.tip(res.info);
        }
      },
      fail:err=>{
        console.log(err)
      }
    })
    switch(that.data.currentTab){
      case '0': // 我得发布
        // 获取个人文章
        http.news_mine_lists({
          data:{'page':that.data.page},
          success:res=>{
            let zanwu;
            if(res.code == 1){ // 成功的情况
              if (res.data.length < 1) {
                zanwu = 1; // 是否显示没有数据
              } else {
                zanwu = 0;
              };
              that.setData({
                mine_list:res.data,
                zanwu:zanwu
              })
            }else{
              app.tip(res.info);
            }
          },
          fail:err=>{
            console.log(err)
          }
        })
        break;
      case '1': // 我得回复
        http.news_answer({
          data:{'page':that.data.page},
          success:res=>{
            if(res.code == 1){ // 成功的情况
              let zanwu;
              if (res.data.length < 1) {
                zanwu = 1; // 是否显示没有数据
              } else {
                zanwu = 0;
              };
              that.setData({
                answer_list:res.data,
                zanwu:zanwu
              })
            }else{
              app.tip(res.info);
            }
          },
          fail:err=>{
            console.log(err)
          }
        })   
        break;
      case '2':  // 我的点赞
        http.news_mine_like({
          data:{'page':that.data.page},
          success:res=>{
            if(res.code == 1){ // 成功的情况
              let zanwu;
              if (res.data.length < 1) {
                zanwu = 1; // 是否显示没有数据
              } else {
                zanwu = 0;
              };
              that.setData({
                like_list:res.data,
                zanwu:zanwu
              })
            }else{
              app.tip(res.info);
            }
          },
          fail:err=>{
            console.log(err)
          }
        })   
      break;
    }
     // 获取个人文章
     http.news_mine_lists({
      data:{'page':that.data.page},
      success:res=>{
        let zanwu;
        if(res.code == 1){ // 成功的情况
          if (res.data.length < 1) {
            zanwu = 1; // 是否显示没有数据
          } else {
            zanwu = 0;
          };
          that.setData({
             mine_list:res.data,
             zanwu:zanwu
          })
        }else{
          app.tip(res.info);
        }
      },
      fail:err=>{
        console.log(err)
      }
    }) 
    wx.stopPullDownRefresh(); // 关闭上拉

  },
  getUserInfo: function(e) {
    app.globalData.userInfo = e.detail.userInfo
    this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo: true
    })
  },
  videometa:function (e) {
    var that = this;
    //获取系统信息
    wx.getSystemInfo({
      success (res) {
        //视频的高
        var height = e.detail.height;
        
        //视频的宽
        var width = e.detail.width;
 
        //算出视频的比例
        var proportion = height / width;

        //res.windowWidth为手机屏幕的宽。
        var windowWidth = res.windowWidth;
 
        let bl = 750/res.windowWidth; //该设备的rpx与px的比例

        let bl_width = windowWidth - windowWidth*0.08 - 60/bl; // 宽度的百分之92 减去 60rpx 转换的像素

        //算出当前宽度下高度的数值
        height = proportion * bl_width;
        that.setData({
          height,
          width:bl_width
        });
      }
    })
  },
  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function (e) {
    let news_id = e.target.dataset.news_id;
    let that = this;
    let param = {news_id:news_id}; // 提交参数
    let currentTab = that.data.currentTab
    // 请求分享接口 记录分享次数
    http.news_share({
      data:param,
      success:res=>{
        if(res.code == 1){
          if(currentTab == '0'){
            for (var i = 0; i < that.data.mine_list.length; i++) {
              if (that.data.mine_list[i].id == news_id) {
                // 点赞成功时遍历msg对象并获取到当前节点的id
                that.setData({
                  // 改变对象节点的分享数量
                  ['mine_list[' + i + '].share']:that.data.mine_list[i]['share']+1 ,
                })
              }
            }
          }
          if(currentTab == '1'){
            for (var i = 0; i < that.data.answer_list.length; i++) {
              if (that.data.answer_list[i].news_id == news_id) {
                // 点赞成功时遍历msg对象并获取到当前节点的id
                that.setData({
                  // 改变对象节点的分享数量
                  ['answer_list[' + i + '].share']:that.data.answer_list[i]['share']+1 ,
                })
              }
            }
          }
          if(currentTab == '2'){
            for (var i = 0; i < that.data.like_list.length; i++) {
              if (that.data.like_list[i].id == news_id) {
                // 点赞成功时遍历msg对象并获取到当前节点的id
                that.setData({
                  // 改变对象节点的分享数量
                  ['like_list[' + i + '].share']:that.data.like_list[i]['share']+1 ,
                })
              }
            }
          }
        }else{
          _app.tip(res.info)
        }
      },
      fail:err=>{
        console.log(err)
      }
    })
  },

  /**
   * 点赞
   * @param {*} e 
   */
  giveLike:function(e){
    let data = e.currentTarget.dataset;let that = this; // 传来的数据
    let status = 0; // 默认点赞动作
    let currentTab = that.data.currentTab
    if(data.like_status ==  0){
      status = 1;  // 点过赞 再点就是取消点赞
    }
    let param = {news_id:data.news_id,status:status};
    http.news_like({
      data:param,
      success:res=>{
          app.tip(res.info,1000); // 提示信息
          if(res.code == 1){
            if(currentTab == '0'){
              for (var i = 0; i < that.data.mine_list.length; i++) {
                if (that.data.mine_list[i].id == data.news_id) {
                  // 点赞成功时遍历msg对象并获取到当前节点的id
                  that.setData({
                    // 改变对象节点的点赞状态
                    ['mine_list[' + i + '].like_status']: status,
                  })
                  if(status == 0){ // 点赞+1 取消减1
                    that.setData({
                     ['mine_list[' + i + '].like']: that.data.mine_list[i]['like']+1,
                    })
                  }else{
                    that.setData({
                      ['mine_list[' + i + '].like']: that.data.mine_list[i]['like']-1,
                     })
                  }
                }
              }
            }
            if(currentTab == '1'){
              for (var i = 0; i < that.data.answer_list.length; i++) {
                if (that.data.answer_list[i].news_id == data.news_id) {
                  // 点赞成功时遍历msg对象并获取到当前节点的id
                  that.setData({
                    // 改变对象节点的点赞状态
                    ['answer_list[' + i + '].like_status']: status,
                  })
                  if(status == 0){ // 点赞+1 取消减1
                    that.setData({
                     ['answer_list[' + i + '].like']: that.data.answer_list[i]['like']+1,
                    })
                  }else{
                    that.setData({
                      ['answer_list[' + i + '].like']: that.data.answer_list[i]['like']-1,
                     })
                  }
                }
              }
            }
            if(currentTab == '2'){
              for (var i = 0; i < that.data.like_list.length; i++) {
                if (that.data.like_list[i].id == data.news_id) {
                  // 点赞成功时遍历msg对象并获取到当前节点的id
                  that.setData({
                    // 改变对象节点的点赞状态
                    ['like_list[' + i + '].like_status']: status,
                  })
                  if(status == 0){ // 点赞+1 取消减1
                    that.setData({
                     ['like_list[' + i + '].like']: that.data.like_list[i]['like']+1,
                    })
                  }else{
                    that.setData({
                      ['like_list[' + i + '].like']: that.data.like_list[i]['like']-1,
                     })
                  }
                }
              }
            }
          }
      },
      fail:err=>{
        console.log(err)
      }
    })
  },
  onShow: function () {
    if (typeof this.getTabBar === 'function' &&
    this.getTabBar()) {
      this.getTabBar().setData({
        selected: 2
      })
   }
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    let that = this;
    that.setData({
      page:1, // 重置分页
    })
    that.onLoad();
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    let that=this
    that.setData({ 
      page: that.data.page + 1, //每次触发上拉事件，把page+1  
    });
    //调用分页查询数据的方法，返回新一页的数据为res
    switch (that.data.currentTab) {
        case '0':
          http.news_mine_lists({
            data:{'page':that.data.page},
            success:res=>{
              if(res.code == 1){ // 成功的情况
                var tmpArr = that.data.mine_list;
                 // 这一步实现了上拉加载更多
                 tmpArr.push.apply(tmpArr,res.data);
                 let show;
                 if(res.data.length < 1){
                    show = 1 // 显示没有更多
                 }else{
                    show = 0;
                 }
                 that.setData({
                  mine_list: tmpArr,
                  show : show // 显示没有更多
                 })
              }else{
                app.tip(res.info);
              }
            },
            fail:err=>{
              console.log(err)
            }
          })
        break;
        case '1':
          http.news_answer({
            data:{'page':that.data.page},
            success:res=>{
              if(res.code == 1){ // 成功的情况
                var tmpArr = that.data.answer_list;
                 // 这一步实现了上拉加载更多
                 tmpArr.push.apply(tmpArr,res.data);
                 let show;
                 if(res.data.length < 1){
                    show = 1 // 显示没有更多
                 }else{
                    show = 0;
                 }
                 that.setData({
                  answer_list: tmpArr,
                  show : show // 显示没有更多
                 })
              }else{
                app.tip(res.info);
              }
            },
            fail:err=>{
              console.log(err)
            }
          })
          break;
          case '2':
            http.news_mine_like({
              data:{'page':that.data.page},
              success:res=>{
                if(res.code == 1){ // 成功的情况
                  var tmpArr = that.data.like_list;
                   // 这一步实现了上拉加载更多
                   tmpArr.push.apply(tmpArr,res.data);
                   let show;
                   if(res.data.length < 1){
                      show = 1 // 显示没有更多
                   }else{
                      show = 0;
                   }
                   that.setData({
                    like_list: tmpArr,
                    show : show // 显示没有更多
                   })
                }else{
                  app.tip(res.info);
                }
              },
              fail:err=>{
                console.log(err)
              }
            })
            break;
    }
  },
})
